import os  
def calcDirSize(dir):
    #把目录下的文件按照列表形式存储到file
    files=os.listdir(dir);
    #记录文件大小
    count=0;
    for i in files:
        #因为当前目录没有改变，所以不可以直接用i,需要加上之前的路径      
        dir1=os.path.join(dir,i)
        #判断遍历的元素是不是文件，是就统计，否则进入下一个文件夹
        if os.path.isfile(dir1):
            count+=os.path.getsize(dir1)
        else:
            #把这其中某个文件夹再用这个函数计算一下大小。
            count+=calcDirSize(dir1)
    return count

#程序执行开始的地方
while 1:
    #这里捕获异常
    try:
        mypath=input("请输入文件夹的相对或者绝对路径：")
        print("你所输入的文件夹大小为：%d 字节"%calcDirSize(mypath))
        #没有异常成功算出大小后跳出输入循环
        break;
    except PermissionError:
        input("文件夹包含不能访问的路径,按任意键重新输入")
    except:
        input("请输入指向一个文件夹的路径,按任意键重新输入")


